
package pe.edu.cibertec.entity;

import java.io.Serializable;
import java.sql.Date;
import java.text.SimpleDateFormat;
import javax.persistence.Entity;
import javax.persistence.EntityListeners;
import javax.persistence.Id;
import javax.persistence.PostPersist;
import javax.persistence.PostRemove;
import javax.persistence.PostUpdate;
import pe.edu.cibertec.listener.MonitoreoListener;


@Entity
@EntityListeners({MonitoreoListener.class})
public class Cliente implements Serializable{
    
    @Id private Integer codigo;
    private String nombre;
    private String apellido;
    private Date fecha;

    public Integer getCodigo() {
        return codigo;
    }

    public void setCodigo(Integer codigo) {
        this.codigo = codigo;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getApellido() {
        return apellido;
    }

    public void setApellido(String apellido) {
        this.apellido = apellido;
    }

    public Date getFecha() {
        return fecha;
    }

    public void setFecha(Date fecha) {
        this.fecha = fecha;
    }

    
    /* Los listener se ejecutan al final (ambito especifico) */
    @PostPersist
    @PostUpdate
    @PostRemove
    private void getUltimaFechaSincronización(){
        SimpleDateFormat simpleDateFormat=new SimpleDateFormat("dd/MM/yyyy hh:mm:ss SSSS");
        
        System.out.println("CALLBACK METHOD: getUltimaFechaSincronización() "+ 
                simpleDateFormat.format(new Date(System.currentTimeMillis())));
    }
}

